package com.xwaiy.xwaiyrpc.utils;

import cn.hutool.core.util.StrUtil;
import cn.hutool.setting.dialect.Props;

/**
 * 配置工具类
 * @Author Xwaiy
 * @Date 2025/8/21 17:53
 **/
public class ConfigUtils {
    /**
     * 加载配置对象
     * @param clazz
     * @param prefix
     * @return
     * @param <T>
     */
    public static <T> T loadConfig(Class<T> clazz, String prefix) {
        return loadConfig(clazz,prefix,"");
    }

    /**
     * 加载配置对象（区分环境）
     * @param clazz
     * @param prefix
     * @param env
     * @return
     * @param <T>
     */
    public static <T> T loadConfig(Class<T> clazz, String prefix, String env) {
        StringBuffer config = new StringBuffer("application");
        if(StrUtil.isNotBlank(env)){
            config.append("-").append(env);
        }
        config.append(".properties");
        Props props = new Props(config.toString());
        return props.toBean(clazz,prefix);
    }
}
